Trait yii\db\QueryTrait
Implemented by | spinitron\dynamicAr\DynamicActiveQuery, tests\unit\data\CustomerQuery, yii\db\ActiveQuery, yii\db\Query |
---|---|
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/QueryTrait.php |
The BaseQuery trait represents the minimum method set of a database Query.
It is supposed to be used in a class that implements the yii\db\QueryInterface.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$indexBy | string|callable | The name of the column by which the query results should be indexed by. | yii\db\QueryTrait |
$limit | integer | Maximum number of records to be returned. | yii\db\QueryTrait |
$offset | integer | Zero-based offset from where the records are to be returned. | yii\db\QueryTrait |
$orderBy | array | How to sort the query results. | yii\db\QueryTrait |
$where | string|array | Query condition. | yii\db\QueryTrait |
Public Methods
Method | Description | Defined By |
---|---|---|
addOrderBy() | Adds additional ORDER BY columns to the query. | yii\db\QueryTrait |
andFilterWhere() | Adds an additional WHERE condition to the existing one but ignores empty operands. | yii\db\QueryTrait |
andWhere() | Adds an additional WHERE condition to the existing one. | yii\db\QueryTrait |
filterWhere() | Sets the WHERE part of the query but ignores empty operands. | yii\db\QueryTrait |
indexBy() | Sets the indexBy() property. | yii\db\QueryTrait |
limit() | Sets the LIMIT part of the query. | yii\db\QueryTrait |
offset() | Sets the OFFSET part of the query. | yii\db\QueryTrait |
orFilterWhere() | Adds an additional WHERE condition to the existing one but ignores empty operands. | yii\db\QueryTrait |
orWhere() | Adds an additional WHERE condition to the existing one. | yii\db\QueryTrait |
orderBy() | Sets the ORDER BY part of the query. | yii\db\QueryTrait |
where() | Sets the WHERE part of the query. | yii\db\QueryTrait |
Protected Methods
Method | Description | Defined By |
---|---|---|
filterCondition() | Removes empty operands from the given query condition. | yii\db\QueryTrait |
isEmpty() | Returns a value indicating whether the give value is "empty". | yii\db\QueryTrait |
normalizeOrderBy() | Normalizes format of ORDER BY data | yii\db\QueryTrait |
Property Details
The name of the column by which the query results should be indexed by. This can also be a callable (e.g. anonymous function) that returns the index value based on the given row data. For more details, see indexBy(). This property is only used by all().
Maximum number of records to be returned. If not set or less than 0, it means no limit.
Zero-based offset from where the records are to be returned. If not set or less than 0, it means starting from the beginning.
How to sort the query results. This is used to construct the ORDER BY clause in a SQL statement. The array keys are the columns to be sorted by, and the array values are the corresponding sort directions which can be either SORT_ASC or SORT_DESC. The array may also contain \yii\db\Expression objects. If that is the case, the expressions will be converted into strings without any change.
Query condition. This refers to the WHERE clause in a SQL statement.
For example, ['age' => 31, 'team' => 1]
.
See also where() for valid syntax on specifying this value.
Method Details
Adds additional ORDER BY columns to the query.
See also orderBy().
public static addOrderBy ( $columns ) | ||
$columns | string|array | The columns (and the directions) to be ordered by.
Columns can be specified in either a string (e.g. "id ASC, name DESC") or an array
(e.g. |
return | static | The query object itself. |
---|
Adds an additional WHERE condition to the existing one but ignores empty operands.
The new condition and the existing one will be joined using the 'AND' operator.
This method is similar to andWhere(). The main difference is that this method will remove empty query operands. As a result, this method is best suited for building query conditions based on filter values entered by users.
See also:
public static andFilterWhere ( array $condition ) | ||
$condition | array | The new WHERE condition. Please refer to where() on how to specify this parameter. |
return | static | The query object itself. |
---|
Adds an additional WHERE condition to the existing one.
The new condition and the existing one will be joined using the 'AND' operator.
See also:
public static andWhere ( $condition ) | ||
$condition | string|array | The new WHERE condition. Please refer to where() on how to specify this parameter. |
return | static | The query object itself. |
---|
Removes empty operands from the given query condition.
protected array filterCondition ( $condition ) | ||
$condition | array | The original condition |
return | array | The condition with empty operands removed. |
---|---|---|
throws | \yii\base\NotSupportedException | if the condition operator is not supported |
Sets the WHERE part of the query but ignores empty operands.
This method is similar to where(). The main difference is that this method will remove empty query operands. As a result, this method is best suited for building query conditions based on filter values entered by users.
The following code shows the difference between this method and where():
// WHERE `age`=:age
$query->filterWhere(['name' => null, 'age' => 20]);
// WHERE `age`=:age
$query->where(['age' => 20]);
// WHERE `name` IS NULL AND `age`=:age
$query->where(['name' => null, 'age' => 20]);
Note that unlike where(), you cannot pass binding parameters to this method.
See also:
public static filterWhere ( array $condition ) | ||
$condition | array | The conditions that should be put in the WHERE part. See where() on how to specify this parameter. |
return | static | The query object itself. |
---|
Sets the indexBy() property.
public static indexBy ( $column ) | ||
$column | string|callable | The name of the column by which the query results should be indexed by. This can also be a callable (e.g. anonymous function) that returns the index value based on the given row data. The signature of the callable should be:
|
return | static | The query object itself. |
---|
Returns a value indicating whether the give value is "empty".
The value is considered "empty", if one of the following conditions is satisfied:
- it is
null
, - an empty string (
''
), - a string containing only whitespace characters,
- or an empty array.
protected boolean isEmpty ( $value ) | ||
$value | mixed | |
return | boolean | If the value is empty |
---|
Sets the LIMIT part of the query.
public static limit ( $limit ) | ||
$limit | integer | The limit. Use null or negative value to disable limit. |
return | static | The query object itself. |
---|
Normalizes format of ORDER BY data
protected array normalizeOrderBy ( $columns ) | ||
$columns | array|string |
Sets the OFFSET part of the query.
public static offset ( $offset ) | ||
$offset | integer | The offset. Use null or negative value to disable offset. |
return | static | The query object itself. |
---|
Adds an additional WHERE condition to the existing one but ignores empty operands.
The new condition and the existing one will be joined using the 'OR' operator.
This method is similar to orWhere(). The main difference is that this method will remove empty query operands. As a result, this method is best suited for building query conditions based on filter values entered by users.
See also:
public static orFilterWhere ( array $condition ) | ||
$condition | array | The new WHERE condition. Please refer to where() on how to specify this parameter. |
return | static | The query object itself. |
---|
Adds an additional WHERE condition to the existing one.
The new condition and the existing one will be joined using the 'OR' operator.
See also:
public static orWhere ( $condition ) | ||
$condition | string|array | The new WHERE condition. Please refer to where() on how to specify this parameter. |
return | static | The query object itself. |
---|
Sets the ORDER BY part of the query.
See also addOrderBy().
public static orderBy ( $columns ) | ||
$columns | string|array | The columns (and the directions) to be ordered by.
Columns can be specified in either a string (e.g. |
return | static | The query object itself. |
---|
Sets the WHERE part of the query.
See yii\db\QueryInterface::where() for detailed documentation.
See also:
public static where ( $condition ) | ||
$condition | string|array | The conditions that should be put in the WHERE part. |
return | static | The query object itself. |
---|